package cn.tedu.kcircle.category.admin.repository.persist;


import cn.tedu.kcircle.category.admin.protocol.param.CategoryAdminAddParam;
import cn.tedu.kcircle.category.admin.protocol.param.CategoryAdminUpdateParam;
import cn.tedu.kcircle.category.admin.service.bo.CategoryListItemBO;
import cn.tedu.kcircle.category.admin.service.bo.CategoryStandardBO;

import java.util.List;


public interface CategoryRepository {
    /**
     * 插入类别数据
     *
     * @param categoryAddParam 类别数据
     * @return 受影响的行数
     */
    int insert(CategoryAdminAddParam categoryAddParam);

    /**
     * 根据id删除类别数据
     *
     * @param id 类别ID
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据类别名称统计当前表中类别数据的数量
     *
     * @param name 类别名称
     * @return 当前表中匹配名称的类别数据的数量
     */
    Long countByName(String name);

    /**
     * 更新分类
     * @param categoryAdminUpdateParam
     * @return
     */
    int updateById(CategoryAdminUpdateParam categoryAdminUpdateParam);

    /**
     * 根据id查询类别数据详情
     *
     * @param id 类别ID
     * @return 匹配的类别数据详情，如果没有匹配的数据，则返回null
     */
    CategoryStandardBO getStandardById(Long id);

    /**
     * 查询类别数据列表
     *
     * @return 类别数据列表
     */
    List<CategoryListItemBO> list();



}
